Apparatus and method for an accelerated thumbwheel on a communications device

ABSTRACT

An accelerated roller apparatus on a handheld electronic communications device that handles urgency conditions. The device includes a manipulable mechanism that is capable of generating a manipulation-related signal. Changes in the signal occur whenever motion is imparted upon the manipulable mechanism. An urgency activity detector module generates an urgency message when the changes in the signal indicate an urgency condition. The urgency activity detector module uses the signal changes to determine the urgency condition based upon timing of successive manipulations of the manipulable mechanism satisfying a preselected timing threshold. The urgency message is then used by an application operating on the device.

RELATED APPLICATION

This application claims priority to U.S. provisional application Ser.No. 60/246,540 entitled “Apparatus and Method for an AcceleratedThumbwheel on a Communications Device” filed Nov. 7, 2000. By thisreference, the full disclosure, including the drawings, of U.S.provisional application Ser. No. 60/246,540 is incorporated herein.

FIELD OF INVENTION

The invention relates to communications devices and more specifically touser interfaces for communications devices having a manipulablemechanism used for signalling and application messaging.

DESCRIPTION OF THE RELATED ART

Traditional thumbwheel or roller mechanisms operating on communicationsdevices allow a user to signal a software application by a rotationupwards or downwards. For the class of rollers that relate to theinvention, rotations are discrete or digital, with a signal caused byevery click of the roller rotation. Traditionally, an interrupt serviceroutine processes those click signals and in turn signals the user'sintention by placing messages in a queue. Each message in the queue issent to applications running on a device. Traditional roller messagessignal that a rotation has occurred, and the direction of rotation. Someadvanced roller messages also signal the amount of rotation.

FIG. 1 illustrates a typical interrupt service routine used with aroller mechanism in a communications device. With reference to FIG. 1,step 10 waits for roller activity to occur. This usually involves aninterrupt service routine being triggered due to the rotation of theroller. At step 12 the roller position is incremented in the directionof the rotation of the roller, by a constant, which is proportional tothe amount of roller rotation. Step 16 places the roll message into aqueue, which is accessible to the communications device system softwareso that the message can be communicated to the currently runningapplication.

Such a traditional roller implementation does not address the concern ofdetecting and signalling to a software application the degree of urgencywith which a user imparts rotational motion upon the roller. The urgencymay stem from a user's frustration that the wheel rotation is notcausing an action in an application to occur fast enough. For instance,while traversing a particularly long list of contact names in an addressbook application, the roller rotation is used by the application to movea cursor, which in turn is used by the user in selecting a particularcontact name in the list.

SUMMARY

The present invention overcomes at least some of the drawbacks of theprevious approaches by providing a way for detecting the degree ofurgency with which a user imparts a rotation onto a roller. Theinvention also provides a way for signalling the degree of urgency withwhich the user imparts motion onto a roller to an application. Thedetection of the degree of urgency in rotation includes keeping track ofstate information regarding the rotation of the roller and monitorschanges in roller state information over time.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the invention may be more clearly understood, thepreferred embodiment thereof will now be described in detail by way ofexample, with reference to the accompanying drawings, in which:

FIG. 1 is a flowchart of the prior art method for roller operations;

FIG. 2 is a block diagram depicting components used to process urgencyactivities;

FIG. 3 is a flowchart depicting steps used to process urgencyactivities;

FIG. 4 is a flowchart depicting steps used to detect roller inactivity;

FIG. 5 is a flowchart depicting steps used to detect consecutive strokesof a roller; and

FIG. 6 is a block diagram depicting components used to process urgencyactivities within an exemplary communications device.

DETAILED DESCRIPTION OF EXAMPLES OF THE PRESENT INVENTION

FIG. 2 depicts components 20 used within a communications device todetect and process urgency conditions. The communications deviceincludes a manipulable mechanism 24, such as a roller (which is alsoknown as a thumbwheel). A user performs a manipulation 22 of themanipulable mechanism 24 in order to communicate with a softwareapplication 34 that is operating on the device. A user may create anurgency condition when the user imparts a multiplicity of consecutivestrokes onto the roller.

When the manipulable mechanism 24 is a roller, the larger part of theroller is typically embedded within the device with only a small sectionof the roller protruding from the case of the device. The user hasaccess to this small portion of the circumference of the roller at anyone time. In the invention this mechanical constraint is turned into aresource to be exploited by the invention in a novel fashion. Given thatthe user cannot clasp the roller on opposing sides, the user is limitedto stroking the protruding portion of the roller with a finger, usuallythe thumb. It should be noted that the device may be any such datacommunications device, such as a pager or a device that is equipped toreceive both voice and non-voice data messages (e.g., cellular phone).

Manipulation 22 of the mechanism 24 results in signals being generatedthat are indicative of the direction, amount and other characteristicsof the manipulation 22. An urgency activity detector module 26 uses suchcharacteristics data 28 to detect and process an urgencyactivity/action. Upon detection, the urgency activity detector 26generates a message that indicates whether an urgency activity hasoccurred. The message is placed in a queue 30 so that the softwareapplication 34 may retrieve and use it.

An enable/disable message 36 may be issued so that the communicationsdevice may turn on or off the urgency detection processing. If a disablemessage is issued, then the communications device operates in a mannerconsistent with a traditional method. In this manner, the presentinvention is capable of improved application signalling, while remainingbackwards compatible with existing applications and roller hardware.

FIG. 3 depicts steps used to process urgency activities within thecommunications device. Step 10 waits for roller activity to occur. Thisusually involves an interrupt service routine being triggered due to therotation of the roller. At step 12 the roller position is incremented inthe direction of the rotation of the roller, by a constant, which isproportional to the amount of roller rotation. Decision block 14examines whether the communications device has been enabled to detecturgency activities. If it is not enabled, then step 16 places the rollmessage into the queue, which is accessible to the currently runningapplication.

However, if the urgency roller acceleration detection mode is enabled,then the device performs the following processing. Decision block 50examines whether a change in roll direction has occurred. If a rolldirection change has occurred, then the present invention interpretsthis as signifying the user's intention for instantaneous accelerationin the opposite direction of rotation, or rapid deceleration. When thiscondition is detected, processing continues at step 56. Step 56 resetsthe speed term before step 16 places the roll message in the queue.However, if a roll direction change has not occurred, then processingcontinues at decision block 52.

Decision block 52 examines whether a low degree of urgency in a rolleroperation has occurred. Decision block 52 detects a low rotation urgencyby examining the timeout since the last roll. FIG. 4 shows in greaterdetail how a timeout is detected since the last roll.

With reference to FIG. 4, step 110 samples the value of the device'sreal time clock as “rtc”. At decision block 112, the value of rtc iscompared to the time value of the last roller rotation event, relativeto a timeout threshold. In the event that the time lapsed between anytwo consecutive roll events is greater than the timeout threshold, afalse timeout condition is signalled at step 114. Conversely, if thetime lapsed between any two consecutive roll events is less than thetimeout threshold, a true timeout condition is signalled at step 116.Finally, the value of the real time clock is sampled as ‘time’ in step118 for future use in determining whether a timeout has occurred sincethis roll. It was found experimentally that the value of 50 ms wasadequate for the value of timeout threshold.

In the event that the invention has detected a low degree of rotationurgency, a zero speed accelerated rotation message is generated, whichis equivalent to a non-accelerated message. With reference back to FIG.3, this is accomplished at step 56 by resetting the speed term. The zerospeed accelerated rotation message is placed in the queue at step 16.After step 16 executes, then processing continues at step 10 which waitsfor roller activity.

If decision block 52 determines that a timeout has not occurred sincethe last roll, then processing continues at step 54. Step 54 aims todetect a high rotation urgency by detecting a consecutive roll. As usedin this description, the term “rotation urgency” is the inverse functionof the time lapsed between two consecutive roller strokes, measured inHertz. Using appropriate thresholds for the time lapse, it is possibleto define rotation urgency according to various degrees. For example,high and low rotation urgency could have corresponding low and hightime-lapse thresholds, respectively. FIG. 5 shows in greater detail howa consecutive roll is detected.

With reference to FIG. 5, step 210 samples the value of the real timeclock as “rtc”. At step 212, the value of rtc is compared to the timevalue of the last roller rotation event, relative to a consecutivethreshold. In the event that the time lapsed between any two consecutiveroll events is greater than the consecutive threshold, a falseconsecutive roll condition is signalled at step 214. Conversely, if thetime lapsed between any two consecutive roll events is smaller than theconsecutive threshold, a true consecutive roll condition is signalled atstep 216. Finally, the value of the real time clock is sampled as ‘time’in step 218 for future use in determining whether the next roll isconsecutive. It was found experimentally that the value of 350 ms wasadequate for the value of consecutive threshold. Processing continuesback at FIG. 3.

With reference to FIG. 3, in the event that the decision block 54 hasdetected a high degree of rotation urgency, an accelerated rotationmessage is generated. Step 58 increments the roller position by thespeed term in the direction of the roll. Decision block 60 examineswhether the speed term is at its limit. If it is at its limit, then step16 places the roll message in the queue. However if the speed term hasnot yet reached its limit, then step 62 increases the speed term beforestep 16 places the roll message in the queue.

It should be noted that detecting high and low degrees of rotationurgency and generating accelerated rotation messages may have a combinedeffect of providing a form of electric inertia during urgent rotation,whereby it appears to the user that a roller which has mechanicallystopped rotating in between strokes continues to cause rotationsignalling to occur in the form of accelerated rotation messages. Thesemessages convey an upper bounded rotation amount that is proportional torotation urgency. The term “electronic rotation inertia” is rotationsignalling which continues to occur after the mechanical rotation whichinitially caused the signalling has stopped. Also, it should be notedthat a further refinement is accomplished by providing a way of rapidrotation deceleration, which is another type of accelerated rotationmessage.

It will be appreciated that the above description relates to thepreferred embodiment by way of example only. Many variations on theinvention will be obvious to those knowledgeable in the field, and suchobvious variations are within the scope of the invention as describedand claimed, whether or not expressly described. For example, FIG. 6depicts one such variation of the present invention.

FIG. 6 shows an exemplary use of the present invention on a handheldelectronic communications device 300. Manipulation 22 of roller 302generates a roller input signal. The roller input signal includes aroller rotation direction which can be either positive or negative and aroller rotation amount. An accelerated mode input 36 is received whichcan be either active or inactive. When the mode is inactive, thenpresent invention is disabled and the rotation handler module 304handles manipulation signals in accordance with traditional rollerapproaches.

Roller state is computed by the following steps. If the roller inputrotation direction is positive, then the roller position stored inregister 306 is incremented by a constant amount proportional to theroller rotation amount. If the roller input rotation direction isnegative, then the roller position stored in the register 306 isdecremented by a constant amount proportional to the roller rotationamount.

If the accelerated mode input is active, then the roller state data isstored in the following registers: the value of the roller rotationdirection is stored in the direction register 308; the value of a realtime clock is stored in the time register 310; and the instantaneousdifferential amount of roller acceleration is stored in the speedregister 312.

The roller rotation direction is compared to the value stored in thedirection register 308. If the roller rotation direction is differentthan the value stored in the direction register 308, a change in rollerdirection condition is detected. If the change in roller directioncondition is detected, then the speed register 312 is reset to zero. Thelapsed time is computed by subtracting the value of the time registerfrom the value of the real time clock. If the time lapsed is greaterthan a timeout threshold, a timeout condition is detected. If thetimeout condition is detected, the speed register 312 is reset to zero.If the time lapsed is smaller than a consecutive threshold, aconsecutive roll condition is detected.

If the consecutive roll condition is detected, then the following stepsare performed. If the roller rotation direction is positive, then theroller position register 306 is incremented by the amount of the speedregister 312. If the roller rotation direction is negative, then theroller position register 306 is decremented by the amount of the speedregister 312. If the speed register 312 is less than a predeterminedlimit, then the value of the speed register 312 is incremented by anacceleration amount. The value of the roller rotation direction isstored in the direction register 308. The value of the real time clockis stored in the time register 310. The change in the roller state isplaced as a roll message into the queue 30, which is accessible to thecommunications device system software 314 so that the message can becommunicated to the currently running application 34.

1. An apparatus on a handheld electronic device that handles urgencyconditions comprising: a manipulable mechanism capable of providing amanipulation-related signal, changes in the signal occurring whenevermotion is imparted upon the manipulable mechanism; and an urgencyactivity detector module that generates an urgency message when thechanges in the signal indicate an urgency condition, said urgencyactivity detector module using the signal changes to determine theurgency condition based upon a computed accelerated roller state, adetected change in roller direction, a detected timeout condition, adetected consecutive roll condition, and a computed value for a rollerposition register as a function of the accelerated roller state anddetected conditions; wherein an application operable on the deviceprocesses the urgency message.
 2. The apparatus of claim 1 wherein themanipulable mechanism is a roller.
 3. The apparatus of claim 2 wherein asignal is generated by every click of the roller's rotation.
 4. Theapparatus of claim 2 wherein a first and second level of urgency isdetected by the urgency activity detector module, said first level ofurgency being determined when the timing of successive manipulationssatisfy a first preselected timing threshold, said second level ofurgency being determined when the timing of successive manipulationssatisfy a second preselected timing threshold.
 5. The apparatus of claim4 wherein the second level of urgency indicates greater urgency relativeto the first level of urgency.
 6. The apparatus of claim 5 wherein thesecond preselected timing threshold is representative of timing betweensuccessive manipulations being less than the timing between successivemanipulations for the first preselected timing threshold.
 7. Theapparatus of claim 2 wherein the roller is embedded within the devicewith a small section of the roller protruding from the device.
 8. Theapparatus of claim 1 wherein the manipulation of the mechanism resultsin signals being generated that are indicative of the direction andamount of the manipulation, said urgency activity detector module usingthe generated signals to determine the urgency condition.
 9. Theapparatus of claim 1 further comprising: a queue connected to theurgency activity detector module that stores the urgency messages. 10.The apparatus of claim 1 wherein the urgency message in the queue isprovided to the application.
 11. The apparatus of claim 1 wherein a modemessage indicates whether the urgency activity detector module is toprocess urgency conditions.
 12. The apparatus of claim 11 wherein theurgency message is a disable message to indicate that the manipulationsof the mechanism are to be provided to the application without anurgency indication.
 13. The apparatus of claim 1 wherein a non-urgentmessage is generated from the manipulation of the mechanism when themanipulation does not indicate an urgency condition.
 14. The apparatusof claim 1 wherein the urgency activity detector module generates arapid rotation deceleration message when the timing of successivemanipulations of the mechanism satisfies a preselected rapiddeceleration timing threshold.
 15. The apparatus of claim 1 wherein thedevice is a pager.
 16. The apparatus of claim 1 wherein the device isequipped to receive both voice and non-voice data messages.
 17. Theapparatus of claim 1 wherein the urgency activity detector moduledetects that rotation urgency is of a preselected low degree to disableelectronic rotation inertia, and upon the detection of the sufficientlylow degree of rotation urgency, the amount of electronic rotationassociated with the signal is set to the amount of mechanical rotationassociated with the roller signal.
 18. A method for roller input on ahandheld electronic device comprising the steps of: (a) receiving rollerinput; (b) receiving an accelerated mode input which can be eitheractive or inactive; (c) computing a roller state; (d) if the acceleratedmode input is active, then accelerated mode steps are enabled in orderto detect an urgency condition; and (e) signalling a change in theroller state to software executing on the handheld electronic devicethat is indicative of an urgency condition if the accelerated mode inputis active, said urgency condition being determined based upon timing ofsuccessive manipulations of the roller satisfying a preselected timingthreshold; wherein the accelerated mode steps include: computing anaccelerated roller state; detecting a change in roller direction;detecting a timeout condition; detecting a consecutive roll condition;and computing a value for the roller position register as a function ofthe accelerated roller state and detected conditions.
 19. The method ofclaim 18 in which the roller input of step (a) comprises: a rollerrotation direction which can be either positive or negative; and aroller rotation amount.
 20. The method of claim 19 in which the step ofcomputing the roller state of step (c) comprises a roller positionregister whereby: if the roller input rotation direction is positive,the roller position register is incremented by a constant amountproportional to the roller rotation amount; and if the roller inputrotation direction is negative, the roller position register isdecremented by a constant amount proportional to the roller rotationamount.
 21. The method of claim 20 in which the accelerated roller stateof step (a) comprises a direction register, a time register, and a speedregister whereby: the value of the roller rotation direction is storedin the direction register; the value of a real time clock is stored inthe time register; and the instantaneous differential amount of rolleracceleration is stored in the speed register.
 22. The method of claim 21in which the step of detecting a change in roller direction comprises astep of comparing roller rotation direction to the value stored in thedirection register.
 23. The method of claim 21 in which the step ofcomputing an accelerated roller state comprises a step of computing atime lapsed by subtracting the value of the time register from the valueof the real time clock.
 24. The method of claim 23 in which the step ofdetecting a timeout condition comprises the step of comparing the timelapsed to a timeout threshold whereby if the time lapsed is greater thanthe timeout threshold, a timeout condition is detected.
 25. The methodof claim 23 in which the step of detecting a consecutive roll conditioncomprises the step of comparing the time lapsed to a consecutivethreshold whereby if the time lapsed is smaller than the consecutivethreshold, a consecutive roll condition is detected which is indicativeof the urgency condition.